﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.nm.Attributes;
using com.nm.library;

namespace DistributeAPI.Model
{
    /// <summary>
    /// 计算企划订单量API实体类
    /// </summary>
    public class PlanningOrderQuantityModel
    {
        /// <summary>
        /// 品牌
        /// </summary>
        public string ExtrSource { get; set; } = UserInfo.UserExtrSource;
        /// <summary>
        /// 公司代码
        /// </summary>
        [ParamDescription("公司代码")]
        public string CompanyID { get; set; } = UserInfo.UserCompanyId;
        /// <summary>
        /// 店铺内码
        /// </summary>
        [ParamDescription("店铺内码")]
        public string ShopID { get; set; }
        /// <summary>
        /// 店铺编号
        /// </summary>
        [ParamDescription("店铺编号")]
        public string ShopCode { get; set; }
        /// <summary>
        /// 旧店铺编号
        /// </summary>
        [ParamDescription("旧店铺编号")]
        public string OldShopCode { get; set; }
        /// <summary>
        /// 货号
        /// </summary>
        [ParamDescription("货号")]
        public string MaterialID { get; set; }
        /// <summary>
        /// 旧货号
        /// </summary>
        [ParamDescription("旧货号")]
        public string OldMaterialID { get; set; }
        /// <summary>
        /// 尺码内码
        /// </summary>
        [ParamDescription("尺码内码")]
        public string SizeID { get; set; }
        /// <summary>
        /// 尺码名称
        /// </summary>
        [ParamDescription("尺码名称")]
        public string SizeName { get; set; }
        /// <summary>
        /// 尺码类型
        /// </summary>
        [ParamDescription("尺码类型")]
        public string SizeCodeType { get; set; }
        /// <summary>
        /// 尺码长度
        /// </summary>
        [ParamDescription("尺码长度")]
        public string SizeLength { get; set; }
        /// <summary>
        /// 旧尺码长度
        /// </summary>
        [ParamDescription("旧尺码长度")]
        public string OldSizeLength { get; set; }
        /// <summary>
        /// SKC数量
        /// </summary>
        [ParamDescription("SKC数量")]
        public int Qty { get; set; }
        /// <summary>
        /// 标志,1为导入已计算,0或者null为计算
        /// </summary>
        [ParamDescription("标志,1为导入已计算,0或者null为计算")]
        public int Flag { get; set; }
        /// <summary>
        /// 审核人
        /// </summary>
        [ParamDescription("审核人")]
        public string Checker { get; set; } = UserInfo.UserID;
        /// <summary>
        /// 修改时间
        /// </summary>
        [ParamDescription("修改时间")]
        public DateTime MofifyDTM { get; set; } = DateTime.Now;
        /// <summary>
        /// 是否允许使用,0为允许
        /// </summary>
        [ParamDescription("是否允许使用,0为允许")]
        public int AllowUsed { get; set; } = 0;
        /// <summary>
        /// 店铺名称
        /// </summary>
        [ParamDescription("店铺名称")]
        public string ShopName { get; set; }
        /// <summary>
        /// SKC总量
        /// </summary>
        [ParamDescription("SKC总量")]
        public int TotalQty { get; set; }
        /// <summary>
        /// 尺码最低深度
        /// </summary>
        [ParamDescription("尺码最低深度")]
        public int SizeMinQty { get; set; }
    }

    public class PlanningOrderQuantityModelModify : PlanningOrderQuantityModel
    {
        /// <summary>
        /// 旧店铺内码
        /// </summary>
        [ParamDescription("旧店铺内码")]
        public string OldShopID { get; set; }
        /// <summary>
        /// 旧货号
        /// </summary>
        [ParamDescription("旧货号")]

        public string OldMaterialID { get; set; }
        /// <summary>
        /// 旧尺码内码
        /// </summary>
        [ParamDescription("旧尺码内码")]

        public string OldSizeID { get; set; }
    }

    public class PlanningOrderQuantityModelSave
    {
        /// <summary>
        /// 保存数据临时存放List
        /// </summary>
        [ParamDescription("保存数据临时存放List")]
        public IList<PlanningOrderQuantityModelModify> List { get; set; }
    }

    public class PlanningOrderQuantityModelSize
    {
        /// <summary>
        /// 尺码ID
        /// </summary>
        [ParamDescription("尺码ID")]
        public string SizeID { get; set; }
        /// <summary>
        /// 最低深度
        /// </summary>
        [ParamDescription("最低深度")]
        public int MinQty { get; set; }
        /// <summary>
        /// 尺码名称
        /// </summary>
        [ParamDescription("尺码名称")]
        public string SizeName { get; set; }
        /// <summary>
        /// 尺码SKC数量
        /// </summary>
        [ParamDescription("尺码SKC数量")]
        public int SizeQty { get; set; }
        /// <summary>
        /// 品类ID
        /// </summary>
        [ParamDescription("品类ID")]
        public string ModelID { get; set; }
        /// <summary>
        /// 尺码类型
        /// </summary>
        [ParamDescription("尺码类型")]
        public string SizeTypeFlag { get; set; }
        /// <summary>
        /// 尺码长度
        /// </summary>
        [ParamDescription("尺码长度")]
        public string SizeLength { get; set; }
        /// <summary>
        /// 旧尺码长度
        /// </summary>
        [ParamDescription("旧尺码长度")]
        public string OldSizeLength { get; set; }
        /// <summary>
        /// 尺码排序
        /// </summary>
        [ParamDescription("尺码排序")]
        public int SizeCodeSort { get; set; }

    }

    public class PlanningOrderQuantityModelSizeList : PlanningOrderQuantityModel
    {
        /// <summary>
        /// 尺码List
        /// </summary>
        [ParamDescription("尺码List")]
        public IList<PlanningOrderQuantityModelSize> SizeList;
    }

    public class PlanningOrderQuantityModelSizeRate : PlanningOrderQuantityModelSize
    {
        /// <summary>
        /// 尺码占比
        /// </summary>
        [ParamDescription("尺码占比")]
        public decimal SizeRate { get; set; }
        /// <summary>
        /// 店铺编号
        /// </summary>
        [ParamDescription("店铺编号")]
        public string ShopCode { get; set; }
    }

    /// <summary>
    /// 最低深度缓存Model
    /// </summary>
    public class MinDeepCacheModel : PlanningOrderQuantityModelSize
    {
        /// <summary>
        /// 店铺编号
        /// </summary>
        [ParamDescription("店铺编号")]
        public string ShopCode { get; set; }
        /// <summary>
        /// 货号
        /// </summary>
        [ParamDescription("货号")]
        public string MaterialID { get; set; }
    }

    /// <summary>
    /// 企划订单量删除实体
    /// </summary>
    public class PlaningOrderQuantityDeleteModel
    {
        /// <summary>
        /// 店铺编号
        /// </summary>
        [ParamDescription("店铺编号")]
        public string ShopCode { get; set; }

        /// <summary>
        /// 货号
        /// </summary>
        [ParamDescription("货号")]
        public string MaterialID { get; set; }
    }

    /// <summary>
    /// 企划订单量删除实体
    /// </summary>
    public class PlaningOrderQuantityDeleteModelList
    {
        public IList<PlaningOrderQuantityDeleteModel> List { get; set; }
    }
}
